﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using FarmaciaWeb.Models;
using System.ServiceModel;

namespace FarmaciaWeb.Controllers
{
    public class PedidoController : Controller
    {
        //
        //ClietesWS.ClientesClient proxy = new ClietesWS.ClientesClient();

        private List<Pedido> CrearPedido() {

            Clientes fparagulla = new Clientes() { Nombre = "Felix", Apellidos = "Paragulla Castañeda" };
            Clientes ccaceres = new Clientes() { Nombre = "Cirila", Apellidos = "Caceres Sullca" };
            Clientes kquispe = new Clientes() { Nombre = "Karina", Apellidos = "Quispe Mendieta" };
            

            List<Pedido> pedido=new List<Pedido>();

            pedido.Add(new Pedido() {Codigo = 1, NomCliente ="Amelia", Producto="cHERACOL", Cantidad=5, PrecioUni = 2.5, SubTotal = 12.5});
            pedido.Add(new Pedido() { Codigo = 2, NomCliente = "Erick", Producto = "panadol", Cantidad = 2, PrecioUni = 1.5, SubTotal = 12.5 });
            pedido.Add(new Pedido() { Codigo = 3, NomCliente = "Sara", Producto = "ampicilina 500", Cantidad = 10, PrecioUni = 2.0, SubTotal = 20.0});
            pedido.Add(new Pedido() { Codigo = 4, NomCliente = "Sandro", Producto = "Ceftriaxona-Acantex ", Cantidad = 4, PrecioUni = 2.5, SubTotal = 12.5});
            pedido.Add(new Pedido() { Codigo = 5, NomCliente = "Johana", Producto = "Furosemida-Lasix ", Cantidad = 5, PrecioUni = 2.5, SubTotal = 12.5});
            pedido.Add(new Pedido() { Codigo = 6, NomCliente = "Carlos", Producto = "Mazindol-Diminex", Cantidad = 5, PrecioUni = 2.5, SubTotal = 12.5});

            return pedido;
     
        }


        private Pedido ObtenerPedido(int codigo)
        {
            List<Pedido> pedi = (List<Pedido>)Session["pedido"];
            Pedido model = pedi.Single(delegate(Pedido pedido)
            
            {
                if (pedido.Codigo == codigo) return true;
                else return false;
            });
            return model;
        }      



        public ActionResult Index()
        {
            
            
            if (Session["pedido"] == null)
                Session["pedido"] = CrearPedido();
            List<Pedido> model = (List<Pedido>)Session["pedido"];
            return View(model);
        
        }

        //
        // GET: /Pedido/Details/5

        public ActionResult Details(int codigo)
        {
            Pedido model = ObtenerPedido(codigo);
            return View(model);
        }

        //
        // GET: /Pedido/Create

        public ActionResult Create()
        {
            return View();
        } 

        //
        // POST: /Pedido/Create

        [HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                List<Pedido> pedido = (List<Pedido>)Session["pedido"];
                pedido.Add(new Pedido()
                {
                    Codigo = int.Parse(collection["Codigo"]),
                    NomCliente = collection["NomCliente"],
                    Producto = collection["Producto"],
                    Cantidad = int.Parse(collection["Cantidad"]),
                    PrecioUni = double.Parse(collection["PrecioUni"]),
                    SubTotal = double.Parse(collection["SubTotal"])                    
                });

                return RedirectToAction("Index");

            }
            catch
            {
                return View();
            }

        }
        
        //
        // GET: /Pedido/Edit/5

        public ActionResult Edit(int codigo)
        {
            Pedido model = ObtenerPedido(codigo);
            return View(model);

        }

        //
        // POST: /Pedido/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                Pedido model = ObtenerPedido(id);
                model.Codigo = int.Parse(collection["Codigo"]);
                model.NomCliente = collection["NomCliente"];
                model.Producto = collection["Producto"];
                 
                model.Cantidad = int.Parse(collection["Cantidad"]);
                model.PrecioUni = double.Parse(collection["PrecioUni"]);
                model.SubTotal = double.Parse(collection["SubTotal"]);
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }            
        }

        //
        // GET: /Pedido/Delete/5
 
        public ActionResult Delete(int id)
        {
            Pedido model = ObtenerPedido(id);
            return View(model);
        }

        //
        // POST: /Pedido/Delete/5

        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                List<Pedido> pedido = (List<Pedido>)Session["pedido"];
                pedido.Remove(ObtenerPedido(id));
                ///return View
                return View(pedido);
            }
            catch
            {
                return RedirectToAction("Index");
            }
        }
    }
}
